import { MockMethod } from 'vite-plugin-mock'
import MockJS from 'mockjs'

export default [
    // 模拟首页数据接口
    {
        url: '/api/home',
        method: 'get',
        response: () => {
            // 利用 mockjs 模拟数据
            const data = MockJS.mock({
                // 模拟轮播图数据
                'slideshow|6': [
                    {
                        'id|+1': 1,
                        imageUrl: '@image(375x150, @color)', // MockJS.Random.image(),MockJS.Random.color()
                    },
                ],

                // 模拟秒杀商品数据
                'seckill|4': [
                    {
                        id: '@id', // MockJS.Random.id()
                        title: '@ctitle(10,20)',
                        image: '@image(128x128, @color)',
                        // 'price|10-99': 19
                        price: '@float(10, 99, 2, 2)'
                    }
                ],

                // 模拟推荐商品数据
                'recommend|24': [
                    {
                        id: '@id', // MockJS.Random.id()
                        title: '@ctitle(15,40)',
                        image: '@image(128x128, @color)',
                        // 'price|10-99': 19
                        price: '@float(10, 99, 2, 2)',
                        originPrice: '@float(100,999,2,2)',
                        'saleNum|100-9999': 99
                    }
                ]
            })
            // 返回相应数据
            return {
                code: 200,
                data,
            }
        },
    },

    // 模拟首页推荐商品----更多商品 接口
    {
        url: '/api/home/more',
        method: 'get',
        response: ({query}) => {
            const {page = 1} = query
            const pageSize = 20
            const total = 100

            const data = MockJS.mock({
                isEnd: page * pageSize >= total,  // 是否所有数据查询结束
                'list|20' : [ //当前页查询的数据
                    {
                        id: '@id',
                        title: '@ctitle(15,40)',
                        image: '@image(128x128, @color)',
                        price: '@float(10, 99, 2, 2)',
                        originPrice: '@float(100,999,2,2)',
                        'saleNum|100-9999': 99
                    }
                ],
                page: Number(page), //页码
                total, // 总数据量
            })

            return {
                code: 200,
                data,
                message: ''
            }
        }
    }
] as MockMethod[]